package com.zzh.tools.utils;

import android.content.Intent;
import android.text.TextUtils;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * @author zhangzhihao
 * @email zhangzhihao@gongjiangren.net
 * @date 2020-08-25
 * @desc 极光其他通道的处理
 */
public class ToolJPush {

    public static final String SAVE_PUSH_TIME = "save_push_time";
    // 使用即焚
    public static String skipUriStr;
    /**
     * 使用即焚
     */
    public static final Map<String, String> otherParameters = new HashMap<>(16);

    public static void parsingIntent(Intent intent) {
        String data = null;
        //获取华为平台附带的jpush信息
        if (intent.getData() != null) {
            data = intent.getData().toString();
        }
        //获取fcm、oppo、小米、vivo平台附带的jpush信息
        if (TextUtils.isEmpty(data) && intent.getExtras() != null) {
            data = intent.getExtras().getString("JMessageExtra");
        }
        if (TextUtils.isEmpty(data)) {
            return;
        }
        ToolLog.i("zhangzhihao", ">>获取到的数据>>>>" + data);
        try {
            JSONObject jsonObject = new JSONObject(data);
            String rom_type = jsonObject.optString("rom_type");
            if (TextUtils.isEmpty(rom_type)) {
                return;
            }
            String n_extras = jsonObject.optString("n_extras");
            if (TextUtils.isEmpty(n_extras)) {
                return;
            }
            JSONObject n_extras_json = new JSONObject(n_extras);
            String routePath = n_extras_json.optString("routePath");
            if (TextUtils.isEmpty(routePath)) {
                return;
            }
            skipUriStr = routePath;
            // 清除之前的数据
            otherParameters.clear();
            // 保存存储时间，使用位置可以根据时效使用
            otherParameters.put(SAVE_PUSH_TIME, String.valueOf(System.currentTimeMillis()));
            String msgId = jsonObject.optString("msg_id");
            if (!TextUtils.isEmpty(msgId)) {
                otherParameters.put("jpush_msg_id", msgId);
                otherParameters.put("jpush_rom_type", rom_type);
            }
            // 遍历所有数据
            Iterator iterator = n_extras_json.keys();
            while (iterator.hasNext()) {
                String key = (String) iterator.next();
                String value = n_extras_json.optString(key);
                otherParameters.put(key, value);
            }
//            String channelName;
//            switch (rom_type) {
//                case "0": // 极光
//                    channelName = "极光";
//                    break;
//                case "1": // 小米
//                    channelName = "小米";
//                    break;
//                case "2": // 华为
//                    channelName = "华为";
//                    break;
//                case "3": // 魅族
//                    channelName = "魅族";
//                    break;
//                case "4": // oppo
//                    channelName = "oppo";
//                    break;
//                case "5": // vivo
//                    channelName = "vivo";
//                    break;
//                case "8": // fcm
//                    channelName = "fcm";
//                    break;
//                default:
//                    //没有 处理成默认极光
//                    channelName = "极光";
//                    break;
//            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    /**
     * 清空uri处理
     */
    public static void clearUri() {
        skipUriStr = null;
    }

    /**
     * 清空其他数据
     */
    public static void clearOther() {
        if (otherParameters != null) {
            otherParameters.clear();
        }
    }

}
